package com.example.config;

import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.QueueBuilder;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * RabbitMQ配置类，用于定义消息队列和消息转换器配置
 *
 * @auth shanyue
 * @date 2025年06月23日10:01
 */
@Configuration
public class RabbitConfiguration {

    /**
     * 定义mail队列，用于接收邮件发送请求
     *
     * @return 声明的Queue对象，名称为mail
     */
    @Bean("emailQueue")
    public Queue emailQueue() {
        return QueueBuilder
                .durable("mail")
                .build();
    }

    /**
     * 配置消息转换器，将java对象序列化为JSON格式进行传输
     *
     * @return 消息对象转换器对象
     */
    @Bean
    public MessageConverter jsonMessageConverter() {
        return new Jackson2JsonMessageConverter();
    }

}
